<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    // 改变函数内this指向 js提供了三种方法 call() apply() bind()

    // 2.apply() 应用,运用的意思
    var o = {
        name: 'tom'
    }

    function func(arr) {
        console.log(this)
        console.log(arr)
    }

    // 1.也是调用函数 第二个可以改变函数内部的this指向
    // 2.但是他的参数必须是数组(伪数组)
    // 3.apply 的主要应用 比如说我们可以利用 apply 借助于数学内置对象求最大值/最小值/ of 转换

    func.apply(o, ['pink']);


    var arr = [1, 34, -1, 12, 32, 43];
    var max = Math.max.apply(Math, arr);
    var min = Math.min.apply(Math, arr);


    console.log(max, min)

    // Uncaught TypeError: CreateListFromArrayLike called on non-object
    // func.apply(o, 1)


</script>
</body>
</html>
